package com.tul.exercise.base.jmockit.atMocked;

import mockit.Mocked;
import org.junit.jupiter.api.Test;

import java.util.Locale;

import static org.junit.jupiter.api.Assertions.assertTrue;

/**
 *  《JMockit中文网》示例 3
 *
 *  @Mocked注解修饰一个类
 */
public class MockedClassTest {
    // 加上了JMockit的API @Mocked, JMockit会帮我们实例化这个对象，不用担心它为null
    @Mocked
    Locale locale;

    // 当@Mocked作用于class
    @Test
    public void testMockedClass() {
        // Locale类的静态方法被mock了,返回了null
        assertTrue(Locale.getDefault() == null);

        // Locale类的示例对象方法(非静态方法)（返回类型为String）也被mock，返回默认值null
        assertTrue(locale.getCountry() == null);

        // 自已new一个，也同样如此，方法都被mock了
        Locale chinaLocale = new Locale("zh", "CN");
        assertTrue(chinaLocale.getCountry() == null);
    }
}
